#ifndef __APP_DEVICE_H__
#define __APP_DEVICE_H__

#include "App_Buffer.h"
#include "App_message.h"
#include "App_Pool.h"
#include "App_mqtt.h"
#include "App_Common.h"
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
// 1.定义设备结构体
typedef struct
{

    char *filename;                        // 设备文件  蓝牙串口
    int fd;                                // 文件描述符
    Buffer *up_buffer;                     // 上行缓冲区
    Buffer *down_buffer;                   // 下行缓冲区
    pthread_t read_thread;                 // 读线程标识
    int is_running;                        // 是否运行
    long last_write_time;                  // 最后一次写入的时间
    int (*post_read)(char *data, int len); // 读后处理函数 =>将读取的数据转换为字符数组消息
    int (*pre_write)(char *data, int len); // 写前处理函数 => 将字符数组消息转换为要写入格式的数据
} Device_t;

// 初始化设备
Device_t *App_Device_Init(char *filename);
// 启动设备
int App_Device_Start(void);
// 销毁设备
int App_Device_Destroy(void);

#endif /* __APP_DEVICE_H__ */
